1867B - XOR Palindromes - CodeForces Solution


constructive algorithms strings

Please click on ads to support us..

C++ Code:

/* ۝ وَأَنْ لَيْسَ لِلإِنسَانِ إِلَّا مَا سَعَى ۝ وَأَنَّ سَعْيَهُ سَوْفَ يُرَى ۝ ثُمَّ يُجْزَاهُ الْجَزَاءَ الأَوْفَى ۝ */

#include <iostream>
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#define IO ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0)
#define ll long long
using namespace __gnu_pbds;
using namespace std;
template<typename T> using ordered_set = tree<T, null_type, less_equal<T>, rb_tree_tag, tree_order_statistics_node_update>;
const ll INF=1e18;
const int N =1e6+5;
const int dx[8] = {0, 0, 1, -1, 1, 1, -1, -1};
const int dy[8] = {1, -1, 0, 0, 1, -1, 1, -1};



int main()
{
IO;
int t;
cin>>t;
while(t--){
int n;
string s;
ll com=0;
cin>>n;
cin>>s;
vector<char>arr(n+1,'0');
for(int i=0;i<n/2;i++){
  if(s[i]!=s[n-i-1])com++;
}
for(int i=com;i<=n;i+=(1+(n%2==0))){

if(n-i>=i)arr[i]='1',arr[n-i]='1';

}
for(int i=0;i<=n;i++)
cout<<arr[i];
cout<<'\n';

}



}


Comments

Submit
0 Comments
More Questions

1525. Number of Good Ways to Split a String
72. Edit Distance
563. Binary Tree Tilt
1306. Jump Game III
236. Lowest Common Ancestor of a Binary Tree
790. Domino and Tromino Tiling
878. Nth Magical Number
2099. Find Subsequence of Length K With the Largest Sum
1608A - Find Array
416. Partition Equal Subset Sum
1446. Consecutive Characters
1618A - Polycarp and Sums of Subsequences
1618B - Missing Bigram
938. Range Sum of BST
147. Insertion Sort List
310. Minimum Height Trees
2110. Number of Smooth Descent Periods of a Stock
2109. Adding Spaces to a String
2108. Find First Palindromic String in the Array
394. Decode String
902. Numbers At Most N Given Digit Set
221. Maximal Square
1200. Minimum Absolute Difference
1619B - Squares and Cubes
1619A - Square String
1629B - GCD Arrays
1629A - Download More RAM
1629C - Meximum Array
1629D - Peculiar Movie Preferences
1629E - Grid Xor